$(function () {
    // 定义一个函数用于绑定验证码按钮的点击事件
    function bindCaptchaBtnClick(){
        // 获取验证码按钮点击事件
        $("#captcha-btn").click(function (event) {
            let $this = $(this);  // 使用 jQuery 获取当前点击的按钮元素
            let email = $("input[name='email']").val();  // 获取输入框中的邮箱值

            // 检查邮箱是否为空，若为空，则弹出提示并返回
            if(!email){
                alert("请输入邮箱！");
                return;
            }

            // 禁用按钮点击事件（防止重复点击）
            $this.prop('disabled', true);

            // 发送 AJAX 请求获取验证码
            $.ajax({
                url: '/auth/captchart?email=' + email,  // 请求 URL，携带邮箱参数
                method: 'GET',  // 请求方法为 GET
                success: function (result) {
                    // 成功回调函数，处理服务器返回的结果
                    console.log(result);  // 打印返回结果到控制台
                    if (result.code === "200") {  // 比较返回的 code，确保是字符串比较
                        alert("验证码发送成功！");  // 成功时弹出提示
                    } else {
                        alert("验证码发送失败：" + result.message);  // 失败时弹出失败原因
                    }
                },
                error: function (error) {
                    // 错误回调函数，处理 AJAX 请求失败的情况
                    alert("验证码发送失败，请重试");  // 弹出错误提示
                },
                complete: function () {
                    // 无论请求成功还是失败，都会执行的函数
                    // 在此处恢复按钮为可点击状态
                    $this.prop('disabled', false);  // 启用按钮
                }
            });

            // 开始倒计时逻辑
            let countdown = 60;  // 设置倒计时为 60 秒
            let timer = setInterval(function () {
                if (countdown <= 0) {
                    // 倒计时结束，更新按钮文本为 "获取验证码"
                    $this.text('获取验证码');
                    clearInterval(timer);  // 清除定时器，停止倒计时
                    // 重新绑定点击事件
                    bindCaptchaBtnClick();  // 倒计时结束后重新绑定点击事件
                } else {
                    // 更新按钮文本为剩余秒数
                    $this.text(countdown + "s");
                    countdown--;  // 递减倒计时
                }
            }, 1000);  // 每隔 0.5 秒更新一次
        });
    }

    // 初始化绑定点击事件
    bindCaptchaBtnClick();  // 页面加载时，绑定验证码按钮的点击事件
});
